In general, performance engineering includes a set of activities across the application development life cycle to ensure that the application/software meet the predefined performance requirements, in the production environment. Performance testing is a part of performance engineering, which involves validation of parameters such as system responsiveness, stability under workload, scalability, reliability, resilience and resource usage.
Currently, during performance testing, every system software and application software module monitors and retrieves the log files or logs in different formats. The different log files contain information in various formats making it difficult to analyze, that is to determine which information is useful and which is irrelevant. Also, it has become difficult to perform root-cause analysis accurately from the log files in case of occurrence of errors and this has become an issue. This issue has a high impact on the systems and/or software applications during performance testing as they need to run multiple performance tests to find the bottlenecks in the system and/or application. The issues may considerably increase cost on resources, investment on hardware and application module.
The systems currently available for performance test root-cause analysis are not able to identify the symptoms and behavior models of the different error events from the log files accurately. Therefore, it takes more time to identify the issue or bottleneck in the software application and improving the performance.
A system performance depends on multiple factors and when it is low, root-cause analysis must be performed systematically to make the system performance more effective. There may be more than one root-cause for an event or a problem, and it is difficult to determine the issues for demonstrating the persistence and sustaining the effort required. Also, it is difficult to make decision why the performance is low, where it went wrong, and which teams such as development, testing and infrastructure, is responsible.
At present, the issues mainly faced while improving the system performance by testing are to identify the performance bottlenecks, root-cause for the bottleneck and the team responsible for the issue.